package com.hualude.roadsign.service;

import com.hualude.roadsign.dto.DTRequestDto;
import com.hualude.roadsign.dto.DTResponseDto;
import com.hualude.roadsign.dto.SignalLampFaultDto;

import java.util.List;

/**
 * Created by pjn on 2017/8/5.
 */
public interface SignalLampFaultService {
    /**
     * @Description: 获取信号灯datatable
     * @Author: pan-jianan
     * @Date: 2017/8/5 12:11
     */
    public DTResponseDto getLampReportFault4DT(DTRequestDto dtRequestDto, Integer actorId, Integer userId, Integer orgId) throws Exception;

    /**
     * @Description: 更新故障
     * @Author: pan-jianan
     * @Date: 2017/8/5 12:11
     */
    public Integer updateSignalLampFault(Integer lampFaultId, Integer lampLevel, Integer lampType, String lampPhoto, String lampReason, Double lampMoney) throws Exception;

    /**
     * @Description: 删除信号灯故障
     * @Author: pan-jianan
     * @Date: 2017/8/5 12:11
     */
    public Integer deleteLampFaultByIds(String lampFaultIds) throws Exception;

    /**
     * @Description: 获取信号灯坐标4地图上报
     * @Author: pan-jianan
     * @Date: 2017/7/22 22:01
     */
    public List<SignalLampFaultDto> getLampCoordinate4Map(Integer orgId, Integer actorId) throws Exception;

    /**
     * @Description: 根据信号灯坐标获取信息
     * @Author: pan-jianan
     * @Date: 2017/7/22 16:16
     */
    public List<SignalLampFaultDto> getLampEnergyByXY(String longitude, String latitude) throws Exception;

    /**
     * @Description: 获取第一个路名
     * @Author: pan-jianan
     * @Date: 2017/7/23 0:36
     */
    public List<String> getStartRoad(String roadName, Integer actorId, Integer orgId) throws Exception;

    /**
     * @Description: 根据第一个获取第二个路名
     * @Author: pan-jianan
     * @Date: 2017/7/23 0:36
     */
    public List<String> getSectionByStartRoad(String roadName, Integer actorId, Integer orgId) throws Exception;

    /**
     * @Description: 上报
     * @Author: pan-jianan
     * @Date: 2017/8/5 17:06
     */
    public Integer reportLampFault(Integer signalLampId, Integer lampCreatorId, Integer lampLevel, Integer lampType,
                                      String lampPhoto, String lampReason, Double lampMoney, Integer lampOrgId, Integer lampMainOrgId) throws Exception;

    /**
     * @Description: 判断是否信号机可上报：1可以，0不行
     * @Author: pan-jianan
     * @Date: 2017/8/5 17:06
     */
    public Integer getLampFaultIsReport(Integer signalLampId) throws Exception;

    /**
     * @Description: 信号灯DT4故障上报
     * @Author: jiang-weirong
     * @Date: 2017/8/5 17:59
     */
    public DTResponseDto getLampFaultReport4DT(DTRequestDto dtRequestDto, Integer actorId, Integer orgId, String signalLampStartRoad, String signalLampEndRoad) throws Exception;

    /**
     * @Description: 故障列表list4App
     * @Author: jiang-weirong
     * @Date: 2017/8/5 19:27
     */
    public List<SignalLampFaultDto> getLampFaultReportList4App(Integer orgId, String actorIds, Integer faultStatus, Integer count, Integer size) throws Exception;
}
